package com.arvinclub.service.service;

import com.arvinclub.model.entity.Blog;

import com.arvinclub.model.util.ToolsUtil;
import com.arvinclub.service.dao.BlogDao;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 博客Service层
 */
@Service
public class BlogService {

    @Resource
    private BlogDao blogDao;

    /**
     * 每页展示数量
     */
    private final int PAGE_SIZE = 15;

    /**
     * 查看所有博客（用于社区主页功能）
     */
    public PageInfo<Blog> selectAllBlog(int page) {
        PageHelper.startPage(page, PAGE_SIZE, true);
        return new PageInfo<>(blogDao.selectBlogsByUserId(0));
    }

    /**
     * 添加博客（用于发布博客功能）
     */
    public void addBlog(Blog blog) {
        blogDao.addBlog(blog.getContent(), blog.getUser().getId(), ToolsUtil.getNowTimeString(), blog.getFilenames());
    }

    /**
     * 通过关键词搜索（用于搜索功能）
     */
    public PageInfo<Blog> selectBlogsByKey(String keyword, int page) {
        PageHelper.startPage(page, PAGE_SIZE, true);
        return new PageInfo<>(blogDao.selectBlogsByKey(keyword.trim()));
    }

    /**
     * 查看某人的所有博客（用于个人主页功能）
     */
    public PageInfo<Blog> selectBlogsByUserId(int userId, int page) {
        PageHelper.startPage(page, PAGE_SIZE, true);
        return new PageInfo<>(blogDao.selectBlogsByUserId(userId));
    }

    /**
     * 博客详情
     */
    public Blog blogDetail(int id) {
        return blogDao.backBlogsById(id);
    }

    /**
     * 删除博客
     */
    public void delBlog(int blogId) {
        blogDao.delBlog(blogId);
    }

    /**
     * 编辑博客
     */
    public void editBlog(Blog blog) {
        blogDao.editBlog(blog);
    }

    /**
     * 关注动态
     */
    public PageInfo<Blog> attentionBlogs(int userId, int page) {
        PageHelper.startPage(page, PAGE_SIZE, true);
        return new PageInfo<>(blogDao.attentionBlogs(userId));
    }

}
